const path = require('path');
const fs = require('fs');
const healthCheck = async (ctx) => {
    ctx.body = { code: 200, message: 'get请求访问正常', data: 'Hello Koa!' + ctx.request.ip };
}
/**
 * 记录使用记录
 */
const uselog = async (ctx) => {
    const ip = ctx.request.ip;
    const ipArr = ip.split(':');
    const ipStr = ipArr[ipArr.length - 1]; // 提取 IP 地址

    const { type, content } = ctx.request.body;
    let text = `${new Date().toLocaleString()} ${ipStr} ${content} (${type})`;
    if(type=='monitor_start'){
        text ='\n==========================================\n'+text;
    }

    // ✅ 1. 定义文件路径
    const filePath = path.join(__dirname, '../uploads/log', ipStr + '.txt');

    // ✅ 2. 获取目录路径
    const dirPath = path.dirname(filePath);

    try {
        // ✅ 3. 检查并创建目录（递归创建）
        if (!fs.existsSync(dirPath)) {
            fs.mkdirSync(dirPath, { recursive: true }); // 关键：recursive: true
        }

        // ✅ 4. 追加写入文件
        fs.appendFile(filePath, text + '\n', (err) => {
            if (err) {
                console.error('文件写入失败:', err);
                return;
            }
            console.log('日志已保存:', filePath);
        });

        // 返回成功响应
        ctx.body = { code: 200, message: 'success', data: ipStr };
    } catch (error) {
        console.error('服务器内部错误:', error);
        ctx.status = 500;
        ctx.body = { code: 500, message: '服务器内部错误', error: error.message };
    }
};
module.exports = { healthCheck, uselog };
